From 8d47617623a592c9273b7ea34ee2145be9bb2b6b Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 13 Jan 2016 20:54:43 +0100 Subject: [PATCH] gtkdnd: Reset widget controllers when starting DnD. Otherwise there's no full guarantees that this will happen. --- gtk/gtkdnd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index fc78cffa62..3748112eb9 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -55,6 +55,7 @@ #include "gtkselectionprivate.h" #include "gtkwindowgroup.h" #include "gtkwindowprivate.h" +#include "gtkwidgetprivate.h" /** @@ -2308,6 +2309,8 @@ gtk_drag_begin_internal (GtkWidget *widget, info->start_x = start_x; info->start_y = start_y; + gtk_widget_reset_controllers (widget); + g_signal_emit_by_name (widget, "drag-begin", info->context); /* Ensure that we have an icon before we start the drag; the @@ -2336,7 +2339,7 @@ gtk_drag_begin_internal (GtkWidget *widget, G_CALLBACK (gtk_drag_context_dnd_finished_cb), info); g_signal_connect (context, "cancel", G_CALLBACK (gtk_drag_context_cancel_cb), info); - g_signal_connect (context, "action", + g_signal_connect (context, "action-changed", G_CALLBACK (gtk_drag_context_action_cb), info); selection = gdk_drag_get_selection (context); -- 2.30.2